package com.oplink.webems.common.snmp.service;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.oplink.webems.common.snmp.entity.TrapEvent;
import com.oplink.webems.common.utils.DateUtils;
import com.oplink.webems.modules.alarm.entity.AlarmCurrent;
import com.oplink.webems.modules.alarm.service.AlarmCurrentService;
import com.oplink.webems.modules.event.entity.BaseEvent;
import com.oplink.webems.modules.event.service.EventCenter;

/**
 * 取Trap示例
 * 
 * @author yongz
 */
@Component
public class TestGetTrap implements Runnable {

	TrapEvent te = TrapEvent.getInstance();

	@Autowired
	private AlarmCurrentService alarmCurrentService;
	@Autowired
	private EventCenter ec;

	@SuppressWarnings({"static-access" })
	@Override
	public void run() {
		while (MainServer.servletRun) {
			try {
				/*Map<String, String> trapmap = new HashMap<String, String>();
				//trapmap = te.take();
				//有真实Trap时删除
				trapmap.put("1.3.6.1.2.1.1.3.0","3:03:26.44");                            
				trapmap.put("1.3.6.1.6.3.1.1.4.1.0","1.3.6.1.4.1.2011.2.25.100.5.1.11.9");
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.3.1.1002","1");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.3.1.1003","1");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.3.1.146","A-B/B-A");           
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.3.1.144","button-forced");     
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1001","9");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1002","1413");             
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1003","event");            
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1004","4");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1005","chassis id = 1; slot id = 1; port id = 1");
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1006","4");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1007", "2014-9-11 13:26:01");*/
				//alarmCurrentService.currentAlarmOper(trapmap); 
				//List<AlarmCurrent> alist = alarmCurrentService.getCurrentAlarm();
				//List<Map> jsonlist = alarmCurrentService.changeJsonList(alist);
				//String acurJson = JSONObject.toJSONString(jsonlist);
				//new EventCenter().sendToClient(acurJson);
				
				Map<String, String> trapmap = new HashMap<String, String>();
				//trapmap = te.take();
				//有真实Trap时删除
				trapmap.put("1.3.6.1.2.1.1.3.0","3:03:26.44");                            
				trapmap.put("1.3.6.1.6.3.1.1.4.1.0","1.3.6.1.4.1.2011.2.25.100.5.1.11.9");
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.3.1.1002","1");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.3.1.1003","1");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.3.1.146","A-B/B-A");           
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.3.1.144","button-forced");     
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1001","9");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1002","1413");             
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1003","event");            
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1004","4");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1005","chassis id = 1; slot id = 1; port id = 1");
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1006",new Random().nextInt(4) +1+"");                
				trapmap.put("1.3.6.1.4.1.2011.2.25.100.5.1.8.1.1007", DateUtils.getDateTime());
				AlarmCurrent a = alarmCurrentService.currentAlarmOper(trapmap); 
				BaseEvent be = new BaseEvent();
				be.setType(BaseEvent.TYPE_ALARM_NE);
				be.setAction(BaseEvent.ACTION_VALUE_ON);
				be.setEntity(a);
				ec.put(be);
				Thread.currentThread().sleep((new Random().nextInt(10)+1)*1000);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

}
